--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
scripts/install-offline.sh 65ca9ddc823fcc2c8f8653c553b944b85db0875f (65ca9ddc) Text, 2.10 KB
T8b949e#!/usr/bin/env bash
Tffa657set -euo pipefail
usageTff7b72(Tff7b72) Tff7b72{
cat Ta5d6ff<<'EOF'
Install MeshChatX dependencies from an offline bundle for air-gapped builds.
Run this on the air-gapped machine after extracting the offline bundle into
vendor/offline/ (or the project root).
Usage:
bash scripts/install-offline.sh
This script:
1. Finds the offline bundle directory
2. Extracts node_modules/ from the bundle (if not already present)
3. Exports cache paths for uv and electron-builder
4. Runs 'make install' in offline mode
After install, build with:
MESHCHATX_OFFLINE_BUILD=1 make build
EOF
Tff7b72}
Tff7b72if Tff7b72[Tff7b72[ Ta5d6ff"Tffd700${Te6edf31Tff7b72:-Tffd700}Ta5d6ff" Tff7b72=Tff7b72= Ta5d6ff"-h" Tff7b72|| Ta5d6ff"Tffd700${Te6edf31Tff7b72:-Tffd700}Ta5d6ff" Tff7b72=Tff7b72= Ta5d6ff"--help" Tff7b72]Tff7b72]Tb4b4b4; Tff7b72then
usage
Tffa657exit T79c0ff0
Tff7b72fi
Te6edf3ROOT_DIRTff7b72=Ta5d6ff"Tff7b72$(Tffa657cd Ta5d6ff"Tff7b72$(dirname Ta5d6ff"Tffd700${Te6edf3BASH_SOURCETb4b4b4[0]Tffd700}Ta5d6ff"Tff7b72)Ta5d6ff/..Ta5d6ff" Tff7b72&& Tffa657pwdTff7b72)Ta5d6ff"
Tffa657cd Ta5d6ff"Tffd700${Te6edf3ROOT_DIRTffd700}Ta5d6ff"
Te6edf3BUNDLETff7b72=Ta5d6ff""
Tff7b72if Tff7b72[Tff7b72[ -d Ta5d6ff"Tffd700${Te6edf3ROOT_DIRTffd700}Ta5d6ff/vendor/offlineTa5d6ff" Tff7b72]Tff7b72]Tb4b4b4; Tff7b72then
Te6edf3BUNDLETff7b72=Tff7b72$(find Ta5d6ff"Tffd700${Te6edf3ROOT_DIRTffd700}Ta5d6ff/vendor/offlineTa5d6ff" -maxdepth T79c0ff1 -type d -name Ta5d6ff'meshchatx-offline-bundle-*' T79c0ff2>/dev/null Tb4b4b4| head -n T79c0ff1Tff7b72)
Tff7b72fi
Tff7b72if Tff7b72[Tff7b72[ -z Ta5d6ff"Tffd700${Te6edf3BUNDLETffd700}Ta5d6ff" Tff7b72]Tff7b72]Tb4b4b4; Tff7b72then
Tffa657echo Ta5d6ff"Ta5d6ffNo offline bundle found in Tffd700${Te6edf3ROOT_DIRTffd700}Ta5d6ff/vendor/offline/Ta5d6ff" >Tb4b4b4&T79c0ff2
Tffa657echo Ta5d6ff"Create one on an online machine with:" >Tb4b4b4&T79c0ff2
Tffa657echo Ta5d6ff" bash scripts/create-offline-bundle.sh" >Tb4b4b4&T79c0ff2
Tffa657exit T79c0ff1
Tff7b72fi
Te6edf3BUNDLE_NAMETff7b72=Tff7b72$(basename Ta5d6ff"Tffd700${Te6edf3BUNDLETffd700}Ta5d6ff"Tff7b72)
Tffa657echo Ta5d6ff"Ta5d6ffFound offline bundle: Tffd700${Te6edf3BUNDLE_NAMETffd700}Ta5d6ff"
Tff7b72if Tff7b72[Tff7b72[ -d Ta5d6ff"node_modules" Tff7b72]Tff7b72]Tb4b4b4; Tff7b72then
Tffa657echo Ta5d6ff"node_modules already exists. Skipping extraction."
Tff7b72else
Te6edf3NM_TARTff7b72=Ta5d6ff"Tffd700${Te6edf3BUNDLETffd700}Ta5d6ff/node_modules.tar.gzTa5d6ff"
Tff7b72if Tff7b72[Tff7b72[ ! -f Ta5d6ff"Tffd700${Te6edf3NM_TARTffd700}Ta5d6ff" Tff7b72]Tff7b72]Tb4b4b4; Tff7b72then
Tffa657echo Ta5d6ff"Missing node_modules.tar.gz in bundle" >Tb4b4b4&T79c0ff2
Tffa657exit T79c0ff1
Tff7b72fi
Tffa657echo Ta5d6ff"Extracting node_modules from bundle..."
tar xzf Ta5d6ff"Tffd700${Te6edf3NM_TARTffd700}Ta5d6ff"
Tffa657echo Ta5d6ff"node_modules extracted."
Tff7b72fi
Tffa657export Te6edf3MESHCHATX_OFFLINE_BUILDTff7b72=T79c0ff1
Tffa657export Te6edf3UV_CACHE_DIRTff7b72=Ta5d6ff"Tffd700${Te6edf3BUNDLETffd700}Ta5d6ff/uv-cacheTa5d6ff"
Tffa657export Te6edf3ELECTRON_BUILDER_CACHETff7b72=Ta5d6ff"Tffd700${Te6edf3BUNDLETffd700}Ta5d6ff/electron-builder-cacheTa5d6ff"
Tffa657echo Ta5d6ff""
Tffa657echo Ta5d6ff"Running offline install..."
make install
Tffa657echo Ta5d6ff""
Tffa657echo Ta5d6ff"========================================"
Tffa657echo Ta5d6ff"Offline install complete."
Tffa657echo Ta5d6ff""
Tffa657echo Ta5d6ff"Build with:"
Tffa657echo Ta5d6ff" MESHCHATX_OFFLINE_BUILD=1 make build"
Tffa657echo Ta5d6ff""
Tffa657echo Ta5d6ff"Or package with:"
Tffa657echo Ta5d6ff" MESHCHATX_OFFLINE_BUILD=1 pnpm run dist:linux"
Tffa657echo Ta5d6ff"========================================"
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────